package com.gateway.plugin.base.convert;

import com.gateway.common.dto.PluginData;
import com.gateway.common.dto.RuleData;
import com.gateway.common.dto.SelectorData;
import com.gateway.common.dto.sync.PluginSyncData;
import com.gateway.common.dto.sync.RuleSyncData;
import com.gateway.common.dto.sync.SelectorSyncData;

/**
 * @program: api-gateway
 * @description:
 * @author: YuKai Fan
 * @create: 2025/2/6 10:45
 **/
public interface PluginDataConvert {

    /**
     * convert
     * @param pluginSyncData the plugin sync data
     * @return
     */
    PluginData apply(PluginSyncData pluginSyncData);

    /**
     * convert
     * @param selectorSyncData the selector sync data
     * @return
     */
    SelectorData apply(SelectorSyncData selectorSyncData);

    /**
     * convert
     * @param ruleSyncData the rule sync data
     * @return
     */
    RuleData apply(RuleSyncData ruleSyncData);
}
